Po Lu [Fri, 24 Feb 2023 13:18:35 +0000 (21:18 +0800)]
Fix auto-revert-mode on Android
* src/inotify.c (Finotify_add_watch): Handle asset files.
Po Lu [Fri, 24 Feb 2023 01:06:15 +0000 (09:06 +0800)]
; * src/keyboard.c (lispy_function_keys): Add missing delete key.
Po Lu [Fri, 24 Feb 2023 01:01:29 +0000 (09:01 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Jim Porter [Thu, 23 Feb 2023 23:13:38 +0000 (15:13 -0800)]
; Return t or nil for 'test-completion' of Eshell user references
* lisp/eshell/em-dirs.el (eshell-complete-user-reference): Simply call
'test-completion' when ACTION is 'lambda'; don't modify the result.
Jim Porter [Thu, 23 Feb 2023 22:14:01 +0000 (14:14 -0800)]
; Remove commented-out leftover from the last commit
* lisp/eshell/em-dirs.el (eshell-complete-user-reference): Remove
commented code.
Jim Porter [Thu, 2 Feb 2023 01:48:47 +0000 (17:48 -0800)]
Don't add a space after the trailing slash when completing ~USER in Eshell
This provides a programmed completion function that works similarly to
~USER completion in 'completion-file-name-table'.
* lisp/eshell/em-dirs.el (eshell-complete-user-reference): Throw a
programmed completion function.
* test/lisp/eshell/em-cmpl-tests.el
(em-cmpl-test/user-ref-completion): Update test.
Jim Porter [Thu, 2 Feb 2023 01:48:43 +0000 (17:48 -0800)]
Add support for completing quoted variables in Eshell like $'FOO'
This also adds the ability for Pcomplete handlers to set their own
exit functions that will get called as appropriate.
* lisp/pcomplete.el (pcomplete-default-exit-function): New function.
(pcomplete-exit-function): New variable...
(pcomplete-completions-at-point): ... let-bind and use it.
* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Handle
quoted variables. We also build the 'posns' list from right-to-left
now.
* lisp/eshell/esh-var.el (eshell-envvar-names): Ensure that variable
aliases are included in this list.
(eshell-complete-variable-reference): Handle quoted variables and set
the exit function on the completions.
(eshell-variables-list): Simplify. We now add the trailing slash for
directories in the exit function inside
'eshell-complete-variable-reference'.
* test/lisp/eshell/em-cmpl-tests.el
(em-cmpl-test/quoted-variable-ref-completion)
(em-cmpl-test/variable-ref-completion/directory): New tests.
Jim Porter [Thu, 2 Feb 2023 01:48:37 +0000 (17:48 -0800)]
; Throw strings as the values for 'eshell-incomplete'
This lets us distinguish between cases like "'foo" and "$'foo".
* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Use
strings when checking the delimiter.
* lisp/eshell/em-glob.el (eshell-parse-glob-chars):
* lisp/eshell/em-pred.el (eshell-parse-arg-modifier):
* lisp/eshell/esh-arg.el (eshell-parse-backslash)
(eshell-parse-literal-quote, eshell-parse-double-quote)
(eshell-parse-special-reference):
* lisp/eshell/esh-cmd.el (eshell-parse-subcommand-argument)
(eshell-parse-lisp-argument):
* lisp/eshell/esh-var (eshell-parse-variable-ref)
(eshell-parse-indices): Throw strings instead of characters.
* lisp/eshell/esh-mode.el (eshell-parse-command-input): Print
delimiter as a string.
andrés ramírez [Thu, 23 Feb 2023 14:59:20 +0000 (15:59 +0100)]
Additional change for Bug#61432
* lisp/emulation/viper-cmd.el (viper-set-mode-vars-for): Check
'viper-enable-minibuffer-faces' before enabling minibuffer overlays.
Po Lu [Thu, 23 Feb 2023 13:49:02 +0000 (21:49 +0800)]
Make sure scroll-bar.el is loaded on Android
* lisp/loadup.el: Update commentary.
* src/androidterm.c (syms_of_androidterm): Define
Vx_toolkit_scroll_bars.
* src/xterm.c (syms_of_xterm): Update doc string.xf64
Po Lu [Thu, 23 Feb 2023 13:38:41 +0000 (21:38 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Thu, 23 Feb 2023 13:31:42 +0000 (21:31 +0800)]
Fix ImageMagick build on Android
* INSTALL.android (-linux_arm_sources):
* build-aux/ndk-build-helper-1.mk:
(NDK_$(LOCAL_MODULE)_STATIC_LIBRARIES)::(NDK_CXX_FLAG_$(LOCAL_MODULE)):
* build-aux/ndk-build-helper-2.mk:
(NDK_$(LOCAL_MODULE)_STATIC_LIBRARIES)::(NDK_CXX_FLAG_$(LOCAL_MODULE)):
* cross/ndk-build/ndk-build-shared-library.mk (objname)::($(call
objname,$(LOCAL_MODULE),$(basename
$(1))))::(ALL_OBJECT_FILES$(LOCAL_MODULE)):
* cross/ndk-build/ndk-build-static-library.mk (objname)::($(call
objname,$(LOCAL_MODULE),$(basename
$(1))))::(ALL_OBJECT_FILES$(LOCAL_MODULE)):
(ALL_SOURCE_FILES): Update ImageMagick build instructions and
C++ module detection.
Po Lu [Thu, 23 Feb 2023 10:19:32 +0000 (18:19 +0800)]
; * src/android.c (android_run_select_thread): Fix typos.
Po Lu [Thu, 23 Feb 2023 10:05:57 +0000 (18:05 +0800)]
Make android_select more robust
* src/android.c (android_run_select_thread): Lock select_mutex
before signalling condition variable.
(android_select): Unlock event queue mutex prior to waiting for
it.
Stefan Kangas [Thu, 23 Feb 2023 05:30:16 +0000 (06:30 +0100)]
Merge from origin/emacs-29
94e70ed4261 ; * lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area)...
1841299a11d Eglot: implement inlay hints (bug#61412, bug#61066)
28ed0d1840f Eglot: run eglot-managed-mode-hook after LSP didOpen
7ad5d9babed Eglot: restore eldoc-documentation-functions on shutdown
711a775ba76 Eglot: simplify capability-checking code
ea7251ad6df Eglot: go back to setting eldoc-documentation-strategy again
6016f1982d3 ; * etc/NEWS: Fix typo again
d411b4d1fd3 ; * etc/NEWS (C-x v !): Additional text.
a0b67252346 ; * doc/emacs/vc1-xtra.texi (Preparing Patches): Wording ...
43c4dd6f962 ; * doc/emacs/anti.texi (Antinews): Adjust to latest chan...
20c654b6f8f Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
177d0cf2a9a ; * etc/NEWS: Fix typos.
db7096a532c Yield to erc-move-to-prompt before unhiding prompt
db21c84bc94 ; Improve doc string of 'C-q'
a6be0be1db6 ; Clarify "kill files" in Gnus manual
d816429e2f2 * lisp/progmodes/python.el (python--import-sources): Fix ...
1f4886fdb09 Do not error out on non image file (bug#61639)
003759a6dca Explain effect of variable-pitch fonts on fill-column
ba91a76659b Avoid division by zero in get_narrowed_* functions
fb5dbf6de73 ; Fix documentation of 'icon-title-format'.
48c9a507713 * etc/NEWS: Mention new buffer display action alist entries
4dc1f2b9a01 ; * src/xterm.c (x_update_end): Condition on HAVE_XDBE
f1c83898060 Fix build --without-xdbe
ef38774c02c Improve dnd-direct-save-remote-files docstring
cf53e62a791 Add 'process-status' to process shortdoc
68df9e5953c * lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename)...
06ba9484166 Improve text about deleting windows
1976ca1634d Make 'emacs-news-cycle-tag' work at all levels
# Conflicts:
# etc/NEWS
Yuan Fu [Thu, 23 Feb 2023 01:55:30 +0000 (17:55 -0800)]
; * lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area): Fix typo.
João Távora [Tue, 21 Feb 2023 14:14:05 +0000 (14:14 +0000)]
Eglot: implement inlay hints (bug#61412, bug#61066)
Inlay hints are small text annotations to specific parts of the whole
buffer, not unlike diagnostics, but designed to help readability
instead of indicating problems. For example, a C++ LSP server can
serve hints about positional parameter names in function calls and a
variable's automatically deduced type. Emacs can display these hints
in many little 0-length overlays with an 'before-string property, thus
helping the user remember those types and parameter names.
Since inlay hints are potentially a large amount of data to request
from the LSP server, the implementation strives to be as parsimonious
as possible with these requests.
So, by default, inlay hints are only requested for the visible
portions of the buffer across windows showing this buffer. This is
done by leveraging the 'window-scroll-functions' variable, making for
a reasonably complex implementation involving per-window timers. When
scrolling a window, it may take a short amount of time for inlay hints
to "pop in". The new user variable 'eglot-lazy-inlay-hints' can be
used to exert some control over this.
Specifically, if the variable's value is set to 'nil', then inlay
hints are greedily fetched for the whole buffer every time a change
occurs. This is a much simpler mode of operation which may avoid
problems, but is also likely much slower in large buffers.
Also, because the inlay feature is probably visually suprising to
some, it is turned OFF by default, which is not the usual practice of
Eglot (at least not when the necessary infrastructure is present).
This decision may be changed soon. Here's a good one-liner for
enabling it by default in every Eglot-managed buffer:
(add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode)
I haven't tested inlay hints extensively across many LSP servers, so I
would appreciate any testing, both for functional edge cases and
regarding performance. There are possibly more optimization
oportunities in the "lazy" mode of operation, like more aggressively
deleting buffer overlays that are not in visible parts of the buffer.
Though I ended up writing this one from scratch, I want to thank
Dimitry Bolopopsky <dimitri@belopopsky.com> and Chinmay Dala
<dalal.chinmay.0101@gmail.com> for suggestions and early patches.
* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Define
InlayHint.
(eglot-client-capabilities): Announce 'inlayHint' capability.
(eglot-ignored-server-capabilities): Add :inlayHintProvider.
(eglot--document-changed-hook): New helper hook.
(eglot--after-change): Use it.
(eglot-inlay-hint-face, eglot-type-hint-face)
(eglot-parameter-hint-face): New faces.
(eglot--update-hints-1, eglot--inlay-hints-after-scroll)
(eglot--inlay-hints-fully, eglot--inlay-hints-lazily): New helpers.
(eglot-lazy-inlay-hints): New user variable.
(eglot-inlay-hints-mode): New minor mode.
(eglot--maybe-activate-editing-mode): Try to activate
eglot-inlay-hints-mode.
(eglot--before-change): Remove overlays immediately in the
area being changed.
(eglot--managed-mode-off): Remove overlays.
* doc/misc/eglot.texi (Eglot Features): Mention inlay hints.
(Eglot Variables): Mention eglot-lazy-inlay-hints.
João Távora [Wed, 22 Feb 2023 18:44:39 +0000 (18:44 +0000)]
Eglot: run eglot-managed-mode-hook after LSP didOpen
This allows using the hook for interacting with the LSP server using
the current buffer as the subject of that interaction ("document" in
LSP parlance).
* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
Run eglot-managed-mode-hook here.
(eglot--managed-mode): Not here.
João Távora [Wed, 22 Feb 2023 18:50:46 +0000 (18:50 +0000)]
Eglot: restore eldoc-documentation-functions on shutdown
* lisp/progmodes/eglot.el (eglot--managed-mode): Restore
eldoc-documentation-functions when shutting down eglot.
João Távora [Tue, 21 Feb 2023 13:59:04 +0000 (13:59 +0000)]
Eglot: simplify capability-checking code
* lisp/progmodes/eglot.el (eglot--server-capable-or-lose): New helper.
(eglot--signal-textDocument/willSave)
(eglot--signal-textDocument/didSave): Tweak docstring.
(eglot--workspace-symbols, xref-backend-identifier-at-point)
(eglot-format, eglot-completion-at-point, eglot-rename)
(eglot-code-actions): Use new eglot--server-capable-or-lose.
João Távora [Wed, 22 Feb 2023 18:05:00 +0000 (18:05 +0000)]
Eglot: go back to setting eldoc-documentation-strategy again
This commits reverts part of
commit
e83c78b8c7784254c2c6f043530ab325c2fa7f16
Author: João Távora <joaotavora@gmail.com>
Date: Mon Feb 20 22:43:50 2023 +0000
Eglot: respect user's Eldoc configuration by default
In that commit, I did what many longstanding issues and users were
suggesting and removed Eglot's override of two Eldoc user
configuration varibles.
I verified that Eglot's behaviour would stay mostly unaltered but my
tests were very incomplete. In short there is no way that Eglot can
work acceptably with the default setting of
'eldoc-documentation-strategy', which is
'eldoc-documentation-default'. So it must be changed, either globally
or locally in Eglot's minor mode.
This is true for any situation where both synchronous and asynchronous
documentation sources are present. In Eglot's case there are two
asynchronous sources which have more importance than the synchronous
source. So any other strategy except the
'eldoc-documentation-default' makes sense.
* lisp/progmodes/eglot.el (eglot--managed-mode): Set
eldoc-documentation-strategy to eldoc-documentation-compose.
Protesilaos Stavrou [Wed, 22 Feb 2023 18:00:13 +0000 (20:00 +0200)]
Update Modus themes to version 4.1.0
* doc/misc/modus-themes.org: Update the manual.
* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-operandi-tinted-theme.el:
* etc/themes/modus-vivendi-deuteranopia-theme.el:
* etc/themes/modus-vivendi-theme.el:
* etc/themes/modus-vivendi-tinted-theme.el: Update theme files.
* etc/themes/modus-themes.el: Update main file to the latest version.
Detailed release notes here:
<https://protesilaos.com/codelog/2023-02-22-modus-themes-4-1-0/>.
Martin Rudalics [Wed, 22 Feb 2023 17:48:33 +0000 (18:48 +0100)]
; * etc/NEWS: Fix typo again
Sean Whitton [Wed, 22 Feb 2023 17:17:08 +0000 (10:17 -0700)]
; * etc/NEWS (C-x v !): Additional text.
Sean Whitton [Wed, 22 Feb 2023 17:10:04 +0000 (10:10 -0700)]
; * doc/emacs/vc1-xtra.texi (Preparing Patches): Wording tweaks.
Mattias Engdegård [Wed, 22 Feb 2023 13:13:07 +0000 (14:13 +0100)]
Declare `indirect-function` to be side-effect-free and error-free
* lisp/emacs-lisp/byte-opt.el (side-effect-and-error-free-fns):
Add `indirect-function` which is now error-free.
Eli Zaretskii [Wed, 22 Feb 2023 15:40:00 +0000 (17:40 +0200)]
; * doc/emacs/anti.texi (Antinews): Adjust to latest changes.
Michael Albinus [Wed, 22 Feb 2023 14:35:48 +0000 (15:35 +0100)]
Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29
Michael Albinus [Wed, 22 Feb 2023 14:35:03 +0000 (15:35 +0100)]
; * etc/NEWS: Fix typos.
F. Jason Park [Wed, 22 Feb 2023 14:24:17 +0000 (06:24 -0800)]
Yield to erc-move-to-prompt before unhiding prompt
* lisp/erc/erc-backend.el (erc--hide-prompt): Change hook depth from 0
to 91 to allow the `move-to-prompt' module to do its thing. This
feature was added by bug#54826 and first appeared in Emacs 29.
* lisp/erc/erc-common.el (erc-server-user): Remove erroneous comment.
The `buffers' field is a list of buffers.
* test/lisp/erc/erc-tests.el (erc-hide-prompt): Use `erc--target'
instead of `erc-default-recipients' because this is new code.
Eli Zaretskii [Wed, 22 Feb 2023 14:24:59 +0000 (16:24 +0200)]
; Improve doc string of 'C-q'
* lisp/simple.el (read-quoted-char-radix, quoted-insert): Doc fix.
Eli Zaretskii [Wed, 22 Feb 2023 13:40:26 +0000 (15:40 +0200)]
; Clarify "kill files" in Gnus manual
* doc/misc/gnus.texi (Scoring): Make the reference to kill files
less vague. (Bug#61325)
Augusto Stoffel [Mon, 20 Feb 2023 09:49:22 +0000 (10:49 +0100)]
* lisp/progmodes/python.el (python--import-sources): Fix regexp (bug#61648)
Po Lu [Wed, 22 Feb 2023 13:24:59 +0000 (21:24 +0800)]
; Fix typo
* cross/ndk-build/ndk-build-shared-library.mk: Fix typo.
Po Lu [Wed, 22 Feb 2023 13:20:52 +0000 (21:20 +0800)]
* src/image.c (imagemagick_load_image): Check HAVE_DECL_xxx.
Manuel Giraud [Sun, 19 Feb 2023 20:03:57 +0000 (21:03 +0100)]
Do not error out on non image file (bug#61639)
* lisp/image/image-dired.el
(image-dired-display-thumbs): Do not insert non image file and do not
display image-dired buffer if it is empty.
Po Lu [Wed, 22 Feb 2023 13:20:30 +0000 (21:20 +0800)]
Update Android port
ImageMagick now builds but does not link yet some of the time.
* INSTALL.android: Document ImageMagick and caveats.
* build-aux/ndk-build-helper-1.mk (NDK_SO_NAMES):
* build-aux/ndk-build-helper-2.mk (NDK_A_NAMES):
* build-aux/ndk-build-helper.mk (TARGET_ARCH_ABI): Define architecture
and don't respect explicitly specified library names.
* configure.ac: Enable ImageMagick and lcms2 on Android.
* cross/ndk-build/ndk-build-shared-library.mk (objname)::($(call
objname,$(LOCAL_MODULE),$(basename
$(1))))::(ALL_OBJECT_FILES$(LOCAL_MODULE)):
* cross/ndk-build/ndk-build-static-library.mk (objname)::($(call
objname,$(LOCAL_MODULE),$(basename $(1)))):
(NDK_CFLAGS, ALL_SOURCE_FILES): Handle sources files which start with
$(LOCAL_PATH).
* cross/ndk-build/ndk-clear-vars.mk: Don't undefine; clear variables
instead.
* m4/ndk-build.m4 (ndk_SEARCH_MODULE): Redirect make stderr to
config.log.xf64
Eli Zaretskii [Wed, 22 Feb 2023 13:16:25 +0000 (15:16 +0200)]
Explain effect of variable-pitch fonts on fill-column
* doc/emacs/text.texi (Fill Commands):
* doc/emacs/display.texi (Displaying Boundaries):
* lisp/display-fill-column-indicator.el
(display-fill-column-indicator-mode): Document caveats of using
variable-pitch fonts with 'fill-column' and its indicator.
(Bug#61677)
Eli Zaretskii [Wed, 22 Feb 2023 12:55:05 +0000 (14:55 +0200)]
Avoid division by zero in get_narrowed_* functions
* src/xdisp.c (get_narrowed_width, get_narrowed_len): Return at
least 1 as the value. (Bug#61704)
Mattias Engdegård [Wed, 22 Feb 2023 11:55:45 +0000 (12:55 +0100)]
Use delete-char instead of backward-delete-char
* lisp/bs.el (bs-delete):
* lisp/dired-aux.el (dired-show-file-type):
* lisp/emulation/viper-cmd.el (viper-insert-prev-from-insertion-ring):
* lisp/man.el (Man-fontify-manpage, Man-cleanup-manpage):
* lisp/net/mailcap.el (mailcap-parse-mailcap):
* lisp/progmodes/antlr-mode.el (antlr-insert-makefile-rules):
* lisp/textmodes/reftex-ref.el (reftex-reference):
* lisp/vc/emerge.el:
* lisp/woman.el (woman-man-buffer):
* test/src/fns-tests.el (fns-tests-hash-buffer):
Replace some calls to backward-delete-char with delete-char (negating
the argument) since the former is intended for interactive use.
This silences most of the interactive-only warnings.
Po Lu [Wed, 22 Feb 2023 11:31:31 +0000 (19:31 +0800)]
; * src/androidmenu.c (android_menu_show): Fix typo.
Po Lu [Wed, 22 Feb 2023 06:59:27 +0000 (14:59 +0800)]
Update Android port
* doc/emacs/input.texi (On-Screen Keyboards): Document changes
to text conversion.
* java/org/gnu/emacs/EmacsInputConnection.java (getExtractedText)
(EmacsInputConnection):
* src/keyboard.c (read_key_sequence): Disable text conversion
after reading prefix key.
* src/textconv.c (get_extracted_text): Fix returned value when
request length is zero.
Po Lu [Wed, 22 Feb 2023 03:31:39 +0000 (11:31 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Wed, 22 Feb 2023 03:19:57 +0000 (11:19 +0800)]
Add cross-compilation test for cleanup attribute
* configure.ac: Per title.
Po Lu [Wed, 22 Feb 2023 02:57:33 +0000 (10:57 +0800)]
Update Android port
* INSTALL.android: Port to MIPS.
* configure.ac (modules): Default to ifavailable.
Write actual test for __attribute__((cleanup)).
* m4/ndk-build.m4: Recognize mips and mips64.
* src/emacs-module.c: Remove broken HAS_ATTRIBUTE test.
Po Lu [Wed, 22 Feb 2023 02:51:27 +0000 (10:51 +0800)]
; * configure.ac (EMACS_CONFIG_FEATURES): Improve configure message.
Eli Zaretskii [Tue, 21 Feb 2023 20:06:30 +0000 (22:06 +0200)]
; Fix documentation of 'icon-title-format'.
Martin Rudalics [Tue, 21 Feb 2023 17:49:04 +0000 (18:49 +0100)]
* etc/NEWS: Mention new buffer display action alist entries
Mattias Engdegård [Tue, 21 Feb 2023 15:13:36 +0000 (16:13 +0100)]
Remove stray quotes
* lisp/emacs-lisp/bytecomp.el (byte-compile-form):
* lisp/help-fns.el (help-fns--interactive-only): Fix obvious mistake.
Since `interactive-only` is not supposed to be anything other than
a symbol at these points it was not a very consequential bug.
Robert Pluim [Tue, 21 Feb 2023 17:21:56 +0000 (18:21 +0100)]
Say whether we're using X11 double buffering
* configure.ac (EMACS_CONFIG_FEATURES): Output value of HAVE_XDBE.
Robert Pluim [Tue, 21 Feb 2023 17:05:32 +0000 (18:05 +0100)]
; * src/xterm.c (x_update_end): Condition on HAVE_XDBE
Eli Zaretskii [Tue, 21 Feb 2023 16:15:35 +0000 (18:15 +0200)]
Fix build --without-xdbe
* src/xterm.c (x_end_cr_clip, handle_one_xevent): Condition
double-buffering code on HAVE_XDBE. (Bug#61667)
Robert Pluim [Tue, 21 Feb 2023 15:55:21 +0000 (16:55 +0100)]
Improve dnd-direct-save-remote-files docstring
* lisp/dnd.el (dnd-direct-save-remote-files): Reword.
Robert Pluim [Tue, 21 Feb 2023 15:45:21 +0000 (16:45 +0100)]
Add 'process-status' to process shortdoc
* lisp/emacs-lisp/shortdoc.el (process): Add 'process-status'.
Andrea Corallo [Tue, 21 Feb 2023 13:58:28 +0000 (14:58 +0100)]
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Improve
5d0b45cd67b
Robert Pluim [Tue, 21 Feb 2023 15:35:25 +0000 (16:35 +0100)]
Improve text about deleting windows
* doc/emacs/windows.texi (Change Window): Improve grammar around
'delete-window-choose-selected'.
Robert Pluim [Tue, 21 Feb 2023 14:20:56 +0000 (15:20 +0100)]
Make 'emacs-news-cycle-tag' work at all levels
* lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Search for
a heading starting with 2 or more '*' rather than exactly 3.
* test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts
(Point-Char): Add tests for 2 and 4 '*' levels.
Po Lu [Tue, 21 Feb 2023 13:08:16 +0000 (21:08 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Tue, 21 Feb 2023 13:07:57 +0000 (21:07 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
(addSubmenu, inflateMenuItems): Handle tooltips correctly.
* src/android.c (android_scan_directory_tree): Fix limit
generation for root directory.
* src/androidmenu.c (android_init_emacs_context_menu)
(android_menu_show): Implement menu item help text on Android
8.0 and later.
Mattias Engdegård [Tue, 21 Feb 2023 11:30:09 +0000 (12:30 +0100)]
; * test/lisp/emacs-lisp/nadvice-tests.el: suppress some warnings
Mattias Engdegård [Tue, 21 Feb 2023 10:46:14 +0000 (11:46 +0100)]
Follow aliases for `interactive-only` declarations
Make `interactive-only` declarations apply to aliases of the same
function as well since this quality isn't in the name but in what
the function does.
* lisp/emacs-lisp/bytecomp.el (byte-compile-form):
* lisp/help-fns.el (help-fns--interactive-only):
Follow aliases when retrieving the `interactive-only` property.
Stefan Kangas [Tue, 21 Feb 2023 09:58:00 +0000 (10:58 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
16ca258b1fc Repair mistake in a previous edmacro-sanitize-string change
Stefan Kangas [Tue, 21 Feb 2023 09:58:00 +0000 (10:58 +0100)]
Merge from origin/emacs-29
5a864f23eb8 regex-emacs.c: Reduce the use of backtracking a bit further
e83c78b8c77 Eglot: respect user's Eldoc configuration by default
5d0b45cd67b Make the native compiler always use `make-temp-file' for ...
88ee92e61d7 ; * lisp/progmodes/rust-ts-mode.el (treesit-node-end): De...
02aba20d528 Update to Transient
v0.3.7-216-gfe40342
d7010d64b21 Add declaration_list to c-ts-common-indent-type-regexp-alist
19480aa30e3 Typescript-ts-mode: Add switch case handling
dfc850ca022 Fix object initializer for csharp-mode (bug#61541)
fc4bfa76db9 Update to Org 9.6.1-34-geea8da
afbce8bb467 Improve tree-sitter indent anchor prev-adaptive-prefix (b...
2e6093b425e Adjust jsx indentation
c544df4fa3f Cleanup preproc indent for c-ts-mode (bug#61558)
d397f3d5084 Add comment style toggle for c-ts-mode (bug#61550)
683961cd733 * lisp/simple.el (choose-completion): Check for completio...
1ac05eac74b rust-ts-mode--font-lock-settings: Avoid the explicit 'def...
b5bea14ca17 * lisp/progmodes/xref.el: Bump the version.
# Conflicts:
# src/comp.c
Mattias Engdegård [Mon, 20 Feb 2023 14:23:12 +0000 (15:23 +0100)]
Detect and prevent function alias loops in `fset` and `defalias`
Make `fset` and `defalias` signal an error on attempts to create
circular alias chains. This is more effective, efficient and
convenient than permitting alias loops to be created and trying to
detect them at run time each time a function is called, which is what
we have been doing until now, badly.
* lisp/help-fns.el (help-fns--analyze-function):
Don't pass obsolete argument.
* lisp/subr.el (function-alias-p):
* src/data.c (indirect_function, Findirect_function): Simplify.
Now error-free, second argument obsolete.
(Ffset): Detect loops.
* test/lisp/help-fns-tests.el (help-fns--analyze-function-recursive):
* test/lisp/subr-tests.el (test-alias-p):
Adapt tests.
* test/src/data-tests.el (data-tests-fset, data-tests-defalias): New.
* doc/lispref/eval.texi (Function Indirection):
* doc/lispref/functions.texi (Defining Functions, Function Cells):
Update manual.
* etc/NEWS: Announce.
Stefan Kangas [Tue, 21 Feb 2023 09:32:42 +0000 (10:32 +0100)]
; Merge from origin/emacs-29
The following commits were skipped:
a5b5f73d886 xref--insert-xrefs: Use 'shadow' for the line number colon
6b908773599 * lisp/progmodes/xref.el (xref--insert-xrefs): Remove ext...
25c65e6b586 Backport: Fix xref-clear-marker-stack refactoring mistake
Stefan Kangas [Tue, 21 Feb 2023 09:32:42 +0000 (10:32 +0100)]
Merge from origin/emacs-29
ad6c6a3a115 ; Merge from origin/emacs-28
9a6f22fd0b4 Merge from origin/emacs-28
a44d906740f ; Commit files changed by "autoreconf -i -I m4 --force"
f5a99945b6f ; Update ChangeLog for Emacs 28.3
f7bd5ac5521 Update HISTORY for Emacs 28.3
# Conflicts:
# build-aux/config.guess
# build-aux/config.sub
Mattias Engdegård [Mon, 20 Feb 2023 11:55:09 +0000 (12:55 +0100)]
Repair mistake in a previous edmacro-sanitize-string change
* lisp/edmacro.el (edmacro-sanitize-for-string):
This condition should not have been 'repaired' but removed altogether.
Do so now, fixing bug#61647.
Reported by Eduardo Ochs.
(cherry picked from commit
4eefadad0670ad1c3da2505d734e528d54c76bef)
Stefan Kangas [Tue, 21 Feb 2023 09:28:35 +0000 (10:28 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
32be128382f ; Merge from origin/emacs-28
Stefan Kangas [Tue, 21 Feb 2023 09:28:34 +0000 (10:28 +0100)]
Merge from origin/emacs-29
1630bfb5d08 Merge from origin/emacs-28
e2ac0d416b9 ; Merge from origin/emacs-28
068b53500e2 ; Improve image-dired-thumbnail-storage docstring
497ed0fb42e ; * doc/emacs/dired.texi (Image-Dired): Fix last change.
4aa397e71b2 More doc on image-dired-dired-* (bug#61624)
893ddd5903e Eglot: improve treatment of completion items without :sor...
4a77fcb1478 Update ChangeLog and AUTHORS for Emacs 28.3
e339926272a Fix etags local command injection vulnerability
5d05ea803e9 Fixed ctags local command execute vulnerability
22fb5ff5126 Fix ruby-mode.el local command injection vulnerability (b...
807d2d5b3a7 Fix htmlfontify.el command injection vulnerability.
ae9bfed50db Fix storing email into nnmail by Gnus
Stefan Kangas [Tue, 21 Feb 2023 09:28:34 +0000 (10:28 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
a44d906740f ; Commit files changed by "autoreconf -i -I m4 --force"
Stefan Kangas [Tue, 21 Feb 2023 09:27:27 +0000 (10:27 +0100)]
Merge from origin/emacs-29
f5a99945b6f ; Update ChangeLog for Emacs 28.3
f7bd5ac5521 Update HISTORY for Emacs 28.3
Stefan Kangas [Tue, 21 Feb 2023 08:44:57 +0000 (09:44 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
ba3aba3096a Bump Emacs version to 28.3
Stefan Kangas [Tue, 21 Feb 2023 08:44:57 +0000 (09:44 +0100)]
Merge from origin/emacs-29
Stefan Kangas [Tue, 21 Feb 2023 08:44:57 +0000 (09:44 +0100)]
; Merge from origin/emacs-29
The following commits were skipped:
e339926272a Fix etags local command injection vulnerability
5d05ea803e9 Fixed ctags local command execute vulnerability
22fb5ff5126 Fix ruby-mode.el local command injection vulnerability (b...
807d2d5b3a7 Fix htmlfontify.el command injection vulnerability.
ae9bfed50db Fix storing email into nnmail by Gnus
Po Lu [Tue, 21 Feb 2023 08:29:57 +0000 (16:29 +0800)]
Update from gnulib
* admin/merge-gnulib (GNULIB_MODULES):
* cross/lib/getopt-pfx-core.h (optind):
* cross/lib/limits.in.h (BOOL_WIDTH):
* cross/lib/math.in.h:
* cross/lib/stpncpy.c (__stpncpy):
* cross/lib/string.in.h:
* lib/getopt-pfx-core.h (optind):
* lib/gnulib.mk.in (ANDROID_MIN_SDK):
(GL_COND_OBJ_STDIO_READ_CONDITION):
(LIBS):
(NDK_BUILD_AR):
(REPLACE__EXIT):
(libgnu_a_SOURCES):
* lib/limits.in.h (BOOL_WIDTH):
* lib/math.in.h:
* lib/stpncpy.c (__stpncpy):
* lib/string.in.h:
* m4/assert_h.m4 (gl_ASSERT_H):
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR):
* m4/getdelim.m4 (gl_FUNC_GETDELIM):
* m4/getline.m4 (gl_FUNC_GETLINE):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
(gl_CONDITIONAL_HEADER):
(gl_CHECK_FUNCS_ANDROID):
* m4/gnulib-comp.m4 (gl_EARLY):
(gl_INIT):
(gl_FILE_LIST):
* m4/limits-h.m4:
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
* m4/printf.m4 (gl_PRINTF_SIZES_C99):
(gl_PRINTF_INFINITE):
(gl_PRINTF_INFINITE_LONG_DOUBLE):
(gl_PRINTF_DIRECTIVE_A):
(gl_PRINTF_DIRECTIVE_F):
(gl_PRINTF_FLAG_ZERO):
(gl_SNPRINTF_PRESENCE):
(gl_SNPRINTF_DIRECTIVE_N):
(gl_VSNPRINTF_ZEROSIZE_C99):
* m4/pselect.m4 (gl_FUNC_PSELECT):
* m4/readlink.m4 (gl_FUNC_READLINK):
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF):
* m4/signbit.m4 (gl_SIGNBIT):
* m4/stpncpy.m4 (gl_FUNC_STPNCPY):
* m4/symlink.m4 (gl_FUNC_SYMLINK): Add gnulib module stpncpy.
* src/android.c: Include string.h.
Po Lu [Tue, 21 Feb 2023 07:28:06 +0000 (15:28 +0800)]
Update Android port
* doc/emacs/android.texi (Android Startup): Document `content'
special directory.
* java/debug.sh (is_root): Improve /bin/tee detection.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function `dup'.
* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
(checkReadableOrCopy, onCreate): Create content directory names
when the file is not readable.
* java/org/gnu/emacs/EmacsService.java (EmacsService)
(openContentUri, checkContentUri): New functions.
* src/android.c (struct android_emacs_service): New methods.
(android_content_name_p, android_get_content_name)
(android_check_content_access): New function.
(android_fstatat, android_open): Implement opening content URIs.
(dup): Export to Java.
(android_init_emacs_service): Initialize new methods.
(android_faccessat): Implement content file names.
Po Lu [Tue, 21 Feb 2023 02:36:37 +0000 (10:36 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Stefan Monnier [Tue, 21 Feb 2023 02:22:41 +0000 (21:22 -0500)]
regex-emacs.c: Reduce the use of backtracking a bit further
bug#61514 exhibited some undesirable backtracking in a case where
it's easy to avoid it by making `mutually_exclusive_p` just a bit
more careful.
* src/regex-emacs.c (mutually_exclusive_p): Handle `on_failure_jump`s.
* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
Add a few tests.
João Távora [Mon, 20 Feb 2023 22:43:50 +0000 (22:43 +0000)]
Eglot: respect user's Eldoc configuration by default
This change addresses the problems reported in many Elglot reports
dating back to early 2021 at least:
https://github.com/joaotavora/eglot/issues/648
https://github.com/joaotavora/eglot/issues/894
https://github.com/joaotavora/eglot/issues/920
https://github.com/joaotavora/eglot/issues/1031
https://github.com/joaotavora/eglot/issues/1171
In one form or another, the reports point out that the multiple pieces
of information about the "thing at point" made available by the LSP
server are not all being considered by the ElDoc system.
The reason for this is Eglot setting/trampling the variables
'eldoc-documentation-strategy' and 'eldoc-documentation-functions' in
its minor more entry function.
The reason it did that is historical and is partially described in the
issues above. But, evidently, it never made much sense, because so
many people want to override it, which requires setting
'eldoc-documentation-strategy' to the non-default value
'eldoc-documentation-compose'.
The problem was made worse by the fact that setting it as usual in
either the Customize menu or their init file didn't work, requiring a
fairly complex Elisp snippet. That is now solved as of this commit.
If the user does not do any setting, then Eglot works basically the
same as before (i.e. shows only one piece of information).
It is arguable that the default value for
'eldoc-documentation-strategy' should change globally to
'eldoc-documentation-compose', but that has other subtle implications
and is not part of this commit.
* lisp/progmodes/eglot.el (eglot--managed-mode): Don't set Eldoc
variables greedily.
Stefan Monnier [Mon, 20 Feb 2023 22:11:08 +0000 (17:11 -0500)]
* list/emacs-lisp/cconv.el (cconv-make-interpreted-closure): Tweak docstring
Andrea Corallo [Mon, 20 Feb 2023 20:03:58 +0000 (21:03 +0100)]
Make the native compiler always use `make-temp-file' for temporary files
* src/comp.c (CALL4I): Define macro.
(Fcomp__compile_ctxt_to_file): Use `make-temp-file' instead of
`make-temp-file-internal'.
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Likewise.
Eli Zaretskii [Mon, 20 Feb 2023 17:30:02 +0000 (19:30 +0200)]
; * lisp/progmodes/rust-ts-mode.el (treesit-node-end): Declare.
Jonas Bernoulli [Mon, 20 Feb 2023 15:36:16 +0000 (16:36 +0100)]
Update to Transient
v0.3.7-216-gfe40342
Po Lu [Mon, 20 Feb 2023 14:15:02 +0000 (22:15 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Mon, 20 Feb 2023 14:14:29 +0000 (22:14 +0800)]
Update Android port
* INSTALL.android: Explain where to get tree-sitter.
* configure.ac: Add support for dynamic modules and tree-sitter.
* doc/emacs/android.texi (Android Windowing):
* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(EmacsSdk11Clipboard, ownsClipboard): Improve clipboard handling
and documentation.
Daniel Martín [Sun, 19 Feb 2023 21:57:54 +0000 (22:57 +0100)]
Add declaration_list to c-ts-common-indent-type-regexp-alist
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Consider a
"declaration_list" a block. (Bug#61635)
* test/lisp/progmodes/c-ts-mode-resources/indent.erts (Code): Add a
test case.
Theodor Thornhill [Mon, 20 Feb 2023 12:38:55 +0000 (13:38 +0100)]
Typescript-ts-mode: Add switch case handling
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): New rules.
Theodor Thornhill [Sun, 19 Feb 2023 19:48:36 +0000 (20:48 +0100)]
Fix object initializer for csharp-mode (bug#61541)
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure
we check the openers as well as closers.
Mattias Engdegård [Mon, 20 Feb 2023 11:58:48 +0000 (12:58 +0100)]
* lisp/emacs-lisp/macroexp.el (mapcan): Set funarg-positions.
Mattias Engdegård [Mon, 20 Feb 2023 11:55:09 +0000 (12:55 +0100)]
Repair mistake in a previous edmacro-sanitize-string change
* lisp/edmacro.el (edmacro-sanitize-for-string):
This condition should not have been 'repaired' but removed altogether.
Do so now, fixing bug#61647.
Reported by Eduardo Ochs.
Kyle Meyer [Mon, 20 Feb 2023 05:41:31 +0000 (00:41 -0500)]
Update to Org 9.6.1-34-geea8da
Po Lu [Mon, 20 Feb 2023 03:56:13 +0000 (11:56 +0800)]
Fix crash inside font-list-family
* src/androidfont.c (androidfont_list_family): Don't
unconditionally initialize the Android font driver.
Po Lu [Mon, 20 Feb 2023 03:41:16 +0000 (11:41 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Mon, 20 Feb 2023 03:38:59 +0000 (11:38 +0800)]
Improve SFNT driver lookup efficiency
* src/fontset.c (fontset_find_font): Add compatibility test to
registry strangeness case.
* src/sfnt.c (sfnt_read_cmap_table): Don't read subtable data if
DATA is NULL.
* src/sfntfont.c (struct sfnt_font_desc): New field `registry'.
(sfnt_registry_for_subtable): New function.
(sfntfont_identify_cmap): Move above sfnt_grok_registry.
(sfnt_grok_registry): New function.
(sfnt_enum_font_1): Call it.
(sfntfont_registries_compatible_p): New function.
(sfntfont_list_1): Check registry compatibility.
(sfntfont_registry_for_desc): New function.
(mark_sfntfont): Mark desc->registry.
Po Lu [Mon, 20 Feb 2023 02:50:04 +0000 (10:50 +0800)]
Improve reliability of Java code rebuilds
* java/Makefile.in ($(CLASS_FILES)): Depend on the Java
compiler's internal dependency tracking.
Eric Abrahamsen [Mon, 20 Feb 2023 01:01:41 +0000 (03:01 +0200)]
Help Elisp xref recognize defclass parent classes
* lisp/progmodes/elisp-mode.el (elisp--xref-infer-namespace):
Handle defclass parents (bug#61640).
* test/lisp/progmodes/elisp-mode-tests.el (elisp-mode-infer-namespace):
New case in the test.
Yuan Fu [Sun, 19 Feb 2023 20:22:27 +0000 (12:22 -0800)]
Improve tree-sitter indent anchor prev-adaptive-prefix (bug#61314)
Now prev-adaptive-prefix looks at the current line and checks if it
begins with a prefix itself. If it does, prev-adaptive-prefix tries
to place the anchor before the prefix on the previous line, rather
than after it.
- prev line
- this line -> This line starts with a "-", i.e., begins with a
prefix, so we place the anchor at the beginning of the
"-" of the previous line, rather than after it
- prev line
this line -> This line doesn't start with a prefix, so the anchor
is placed after the previous line's "-".
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el:
(treesit-simple-indent-presets): Add local variable
this-line-has-prefix, base what anchor to return on the value of
this-line-has-prefix and whether the prev line has a prefix.
Theodor Thornhill [Sat, 18 Feb 2023 22:10:13 +0000 (23:10 +0100)]
Adjust jsx indentation
We can use the fact that 'treesit-indent-1' uses 'treesit-node-on'
when on a whitespace to set the actual current node as parent. Now we
can correctly indent the 'jsx_text' nodes. We also add some more
electric-indent-chars so that auto-indenting of jsx behaves a little
more fluently.
* lisp/progmodes/js.el (js--treesit-indent-rules): Add new rules.
(js-ts-mode): Add more indent-chars.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add new rules.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-base-mode): Add more indent-chars and layout rules.
Theodor Thornhill [Fri, 17 Feb 2023 19:46:19 +0000 (20:46 +0100)]
Cleanup preproc indent for c-ts-mode (bug#61558)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make sure we
indent to great-grand-parent if inside an #ifdef...#endif block. If
grand-parent is root node, then don't indent one step.
(c-ts-mode--preproc-offset): New helper anchor function to calculate
indent offset.
Theodor Thornhill [Fri, 17 Feb 2023 22:46:24 +0000 (23:46 +0100)]
Add comment style toggle for c-ts-mode (bug#61550)
* lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style): New
command.
(c-ts-base-mode-map): Add binding.
(c-ts-mode-set-modeline): New function.
(c-ts-mode): Set modeline.
(c++-ts-mode): Set modeline.